<?php

/**
 * Created by XM·Tan.
 * Motto: Who shuts love out, in turn shall be shut out from love.
 * Date: 2020/11/14 1:58
 */
declare(strict_types=1);
namespace app\common\business;

use app\common\lib\ClassArr;
use app\common\lib\sms\AliSms;
use app\common\lib\Num;
use think\facade\Cache;

class Sms {

    public static function sendCode(string $phoneNumber, int $len, string $type = 'ali') :bool {
        // 生成验证码 4位 / 6位
        $code = Num::getCode($len);
//        $sms = AliSms::sendCode($phoneNumber, $code);

        // 工厂模式
        $classStats = ClassArr::smsClassStat();
        $classObj = ClassArr::initClass($type, $classStats);
        $sms = $classObj::sendCode($phoneNumber, $code);
        if ($sms) {
            // 需要把我们的短信验证码记录到 redis 并且需要给出一个失效时间 1 分钟
//            cache(config('redis.code_pre').$phoneNumber, $code, config('redis.code_expire'));
            Cache::store('redis')->set(config('redis.code_pre').$phoneNumber, $code, config('redis.code_expire'));
        }
        return true;
    }

}